آشنایی با مفاهیم تابع ، روال و ماژول در برنامه نویسی VBA
امروز می خواهیم با هم به بررسی یکی از مفاهیم کاربردی تحت عنوان تابع و روال در برنامه نویسی VBA بپردازیم .
مطمئنا اگر بخواهید وارد دنیای برنامه نویسی VBA شوید یکی از عبارتهایی که به کرات با آن سر و کار خواهید داشت همین عبارت روال و تابع می باشد .
امروز می خواهیم به بررسی این مفاهیم بپردازیم و ببینیم که وقتی صحبت از روال می کنیم به چه چیزی اشاره می کنیم و وقتی صحبت از تابع می کنیم منظورمان چیست .
از طرفی هم می خواهیم ببینیم که وقتی صحبت از یک تابع و روال در برنامه نویسی VBA می کنیم این دو از لحاظ عملکرد و کارکردی چه تفاوتهایی با هم دارند .
و دست آخر اینکه چگونه و از طریق چه راههایی می توان توابع و روال ها را در محیط برنامه نویسی VBA ایجاد نمود .
پس تا انتهای این آموزش همراه من باشید .
مطلب مرتبط : آشنایی با توابع نوع Domain در اکسس.
مفهوم روال در برنامه نویسی VBA .
اگر بخواهیم که تعریفی از آنچه که در زبان فارسی به آن روال می گوییم و در دنیای برنامه نویسی تحت عنوان Procducer می شناسیم داشته باشیم اینطور می توانیم بگوییم که :
” یک روال و یا ماژول در برنامه نویسی VBA عبارت است از یکسری از دستورالعمل هایی که در قالب خطوط کد نوشته می شوند و در قرار است برنامه ما با استفاده از کامپایلر یا همان مفسر این خطوط کد را خوانده و مطابق دستورات درج شده کاری را برای ما انجام دهد . ”
خوب شاید این تعریف تا حدی کتابی و کلیشه ای باشد .
بیایید تعریف ساده ای از یک روال یا رویه داشته باشیم .
ببینید تمام کارهایی که یک برنامه برای ما انجام می دهد با استفاده از کدهایی است که در قالب یک زبان برنامه نویسی در اختیار برنامه خود قرار می دهیم .
حال ممکن است این کاری که ما می خواهیم انجام دهیم یک کار بسیار ساده مانند بستن یک فرم باشد .
در این صورت فرآیند کد نویسی ما نیز خیلی ساده و در حد یک خط کد خواهد بود .
مثلا به کد زیر نگاه کنید .
()Private Sub Cmdclose_Click "DoCmd.Close acForm, "frmsabt End Sub
ما در این کد به کامپیوتر خود گفته ایم که اگر کاربر بر روی دکمه ای به نام cmdclose کلیک کرد فرمی به نام frmsabt را ببندد .
می بینید که کدهایی را که برای این کار نوشتیم حتی به اندازه یک خط هم نشد .
اما فرض کنید از برنامه خود بخواهیم که کاربر یک تکس باکس بخصوص بر روی فرم را پر کند و برای این کار هم شروطی را در نظر بگیریم .
حالا به چند تا از این شرطها دقت کنید :
- شرط اول اینکه کاربر به هیچ عنوان این تکس باکس را خالی نگذارد .
- شرط دوم اینکه کاربر فقط مجاز به وارد کردن عدد باشد و به هیچ عنوان از حروف نتواند استفاده کند .
- شرط سوم هم اینکه تعداد ارقامی که وارد می کند از ۱۰ رقم بیشتر نشود .
- در انتها هم اگر تمام این شرطها برقرار بود رنگ پس زمینه تکس باکس ما به رنگ سبز در آید .
بسیار خوب می بینید که ما در اینجا چهار کار مختلف را از برنامه می خواهیم.
همه این کارها طبق یک رویه خاصی انجام می شود و از همین جا هم هست که اصطلاح روال باب شده است .
پس روال مجموعه ای است از یک یا چند خط کد که قرار است یک یا چند کار را برای ما انجام دهند .
Private Sub Command10_Click() If IsNull(Me.Text0) Then MsgBox " fill the text box " End If If Not IsNumeric(Me.Text0) Then MsgBox "fill only with alphbatic" End If If Len(Me.Text0) > 10 Then MsgBox "mor than 10 digit" Else Me.Text0.BackColor = vbGreen End If End Sub
خوب در اینجا کاری که ما باید بکنیم باید لیستی از کارهای خود را تهیه کنیم و برمبنای اولویتی که مدنظر خودمان است این کارها را در قالب کدهای VBA در اختیار برنامه خود قرار دهیم .
معرفی و آشنایی با انواع روالها در VBA
بطور کل ما در برنامه نویسی VBA با سه نوع مختلف از روالها سر و کار داریم .
این رویه ها شامل موارد زیر هستند :
۱- ساب پروسیجر ها (Sub producer )
این دسته از پروسیجرها از متداولترین انواع روال ها یا همان پروسیجرها می باشند .
ما تمام کارهایی را که مد نظر مان است در داخل این پروسیجرها نوشته و برای اجرا در اختیار برنامه خود قرار می دهیم .
این نوع از روال ها برای خود یک ساختار مشخص دارند به این صورت که همیشه یک ساب پروسیجر با کلمه Sub شروع و با کلمات End sub تمام می شود .
در بین این دو کلمه کلیدی نیز کدهای مورد نظر ما قرار می گیرند.
() Sub sbname
کدهای مورد نظر
End sub
۲- فانکشن پروسیجر ها (Function Producer )
فانکشن پروسیجرها هم همانند ساب پروسیجرها حاوی خطوطی از کد هستند که یک یا چند کار خاص را انجام می دهند .
اما در عین حال برخی از تفاوتها هستند که باعث تمایز این دو از هم می شوند .
اولین تفاوت این است که یک فانکشن پروسیجر با کلمه کلیدی Function شروع و با کلمات کلیدی End Function خاتمه می یابد .
() Function sbname
کدهای مورد نظر
End Function
اما دومین و مهمترین تفاوتی که بین این دو وجود دارد این است که ما از یک فانکشن پروسیجر می توانیم خروجی بگیریم اما در ساب پروسیجر وقتی که قطعات کد ما اجرا شد و کار مورد نظر به سرانجام رسید همه چیز تمام شده و خروجی برای ما ایجاد نمی شود .
مفهوم ماژول در برنامه نویسی VBA
یکی دیگر از مفاهیم و اصطلاحاتی که در برنامه نویسی VBA با آن زیاد سرو کار داریم اصطلاح ماژول است .
چیزی که ما تحت عنوان ماژول می شناسیم در واقع فایل هایی هستند که روال های خود را در آن ها ایجاد می کنیم و برنامه این روال ها را در قالب این فایل ها و تحت عنوان ماژول ذخیره می کند .
خود این ماژول ها هم به نوبه خود به دو دسته تقسیم می شوند .
۱- کلاس ماژول
کلاس ماژول ها ماژول هایی هستند که به یک فرم و یا گزارش اختصاص دارند .
در واقع هر بار که شما در اکسس یک فرم یا گزارش را ایجاد می کنید برنامه بطور خودکار یک کلاس ماژول را ایجاد می کند خواه شما از این کلاس ماژول استفاده بکنید یا نه ؟
نوع دیگر از ماژول ها ماژول های استاندارد هستند .
این ماژول ها به هیچ شی خاصی اختصاص ندارند و در واقع تمامی اشیا می توانند از کدهای موجود در این ماژول استفاده کنند.
در تصویر زیر می توانید هر دوی این ماژول ها را در محیط اکسس مشاهده کنید
این مطلب به تدریج تکمیل تر خواهد شد .
اگر پیشنهاد و یا سوالی در خصوص این مطلب دارید که به تکمیل تر کردن این مطلب کمک می کند را می توانید در بخش نظرات درج کنید .
دیدگاهتان را بنویسید